package org.example.utils;

import com.alibaba.excel.EasyExcel;
import org.springframework.stereotype.Component;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@Component
public class excelFileUtils {

//    //excel添加数据
//    public void createExcel(List<daoExcelData> list) {
//        createExcel(excelPath.getFilePath(), list, "数据簿", daoExcelData.class);
//    }
//
//    public void createExcel(daoExcelData list) {
//        ArrayList<daoExcelData> lists = new ArrayList<>();
//        lists.add(list);
//        createExcel(excelPath.getFilePath(), lists, "数据簿", daoExcelData.class);
//    }
//
//    public void addDataToExcel(List<daoExcelData> list)  {
//        addDataToExcel(new File(excelPath.getFilePath()), list,daoExcelData.class);
//    }

    /**
     * 创建excel文件
     * @param filePath 文件路径
     * @param dataList excel数据列表
     * @param sheetName 工作表名称
     * @param clazz·数据封装的类型
     * @param <T> 数据封装的类型
     */
    public <T> void createExcel(String filePath, List<T> dataList, String sheetName, Class<T> clazz) {
        EasyExcel.write(filePath, clazz).sheet(sheetName).doWrite(dataList);
    }

    /**
     * 在excel文件中添加数据
     * @param filePath 文件路径
     * @param dataList 数据列表
     * @param clazz 数据封装的类型
     * @param <T> 数据封装的类型
     */
    public <T> void addDataToExcel(File filePath, List<T> dataList, Class<T> clazz) {
        File tempFile = null;
        try {
            tempFile = File.createTempFile("tmp", ".xlsx");
        } catch (IOException e) {
            e.printStackTrace();
        }
        //tempFile.deleteOnExit();
        //System.out.println(tempFile.getAbsolutePath());
        EasyExcel.write(filePath, clazz).needHead(false).
                withTemplate(filePath).file(tempFile).sheet().doWrite(dataList);
        if (tempFile.exists()){
            filePath.delete();
            tempFile.renameTo(filePath);
        }
    }


}
